//
//  SinaStatusViewModel.swift
//  weibo
//
//  Created by sirius on 16/1/6.
//  Copyright © 2016年 sirius. All rights reserved.
//

import UIKit

class SinaStatusViewModel: NSObject {
    var model: SinaStatusModel?
    //定义一个 用户头像的URL
    var profile_url: NSURL?{
        
        return NSURL(string: model?.user?.profile_image_url ?? "")
    }
    ///reposts_count 
    var reposts_string: String?
        {
          return model?.reposts_count == 0 ? "转发" : "\(model?.reposts_count ?? 0)"
    }
    var comment_string: String? {
        return model?.comments_count == 0 ? "评论" : "\(model?.comments_count ?? 0)"
    }
    var attitudes_string: String?{
        return model?.attitudes_count == 0 ? "赞" : "\(model?.attitudes_count ?? 0)"
    }
    var verifited_Image: UIImage?{
        switch model?.user?.verrifed_level ?? -1{
        case -1:return nil
        case 0: return UIImage(named: "avatar_vip")
        case 2,3,5 :return UIImage(named: "avatar_enterprise_vip")
        case 220:return UIImage(named: "avatar_grassroot")
        default: return nil
        }
    }
    //会员等级 1-6 
    var vipLevel_image: UIImage? {
        return UIImage(named: "common_icon_membership_level\(model?.user?.mbrank ?? 0)")
    }
    init(statusModel: SinaStatusModel) {
     super.init()
        self.model = statusModel
    }
    //来源的定义
    var source_String:String{
        return getSource(model?.source ?? "")!
    }
    var createdat_string:String?{
        return getCreated(model?.created_at ?? "")
    }
    func getCreated(date: String)-> String?{
        //1. 时间转换
        let formatter = NSDateFormatter()
        //2. 设置时区
        formatter.locale = NSLocale(localeIdentifier: "cn")
        // 1.1设置格式 Sat Jan 09 09:39:17 +0800 2016
        formatter.dateFormat  = "EE MMM DD HH:mm:ss Z yyy"
        //1.2 字符串转换成时间
        let time = formatter.dateFromString(date)!
        //创建一个日历
        let canlader = NSCalendar.currentCalendar()
        let uint = NSCalendarUnit(arrayLiteral: .Year,.Month,.Day,.Hour,.Minute,.Second)
        
        let comps = canlader.components(uint, fromDate: time, toDate: NSDate(), options: [])
        print(comps.second)
        return ""
    }
    func getSource2(str: String)-> String{
        //截取字符串
        let sourceArray = str.componentsSeparatedByString(">")
        
        if sourceArray.count >= 2
        {
            let sourceStr = sourceArray[1]
            let lastArray = sourceStr.componentsSeparatedByString("<")
            return lastArray[0]
        }
        
        return ""
    }
    func getSource(str:String) -> String?{
        // 第一步,先确立正则
        let patter = "<a.*?\"(.*?)\">(.*)</a>"
        
        // 第二步,创建一个 regular expression
        /// 第一个参数--正则
        /// 第二个参数-- 关于正则里的设置说明 -- 让我们的 点 . 参与我们的正则
        let expression = try! NSRegularExpression(pattern: patter, options: NSRegularExpressionOptions.DotMatchesLineSeparators)
        
        // 第三步, 通过字符串来查找我们的条件
        /// 第一个参数: 需要查找哪个字符串
        /// 第二个参数: 枚举,这个参数可以不用管,默认值
        /// 第三个参数: 范围
        
        /// 返回值 -- 如果都符合小括号里的值,会返回 小括号数量+1的个数, 这个 +1的个数是 他本身
        let result = expression.firstMatchInString(str, options: [], range: NSMakeRange(0, str.characters.count))
        
        // 第四步,对结果进行筛选
        if result != nil {
            
            let range3 = result?.rangeAtIndex(2)
            
            //            print(range3)//(43,12)
            let source = (str as NSString).substringWithRange(range3!)
            
            
            return source
            
        }
        
        return ""
        
        
    
    
    }
}
